home *** CD-ROM | disk | FTP | other *** search
/ Aminet 35 / Aminet 35 (2000)(Schatztruhe)[!][Feb 2000].iso / Aminet / game / shoot / ADescentSrc.lha / descent / 2d / box.c < prev    next >
C/C++ Source or Header  |  1998-03-03  |  3KB  |  135 lines

  1. /*
  2. THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
  3. SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
  4. END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
  5. ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
  6. IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
  7. SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
  8. FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
  9. CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
  10. AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.  
  11. COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
  12. */
  13. /*
  14.  * $Source: /usr/CVS/descent/2d/box.c,v $
  15.  * $Revision: 1.1.1.1 $
  16.  * $Author: nobody $
  17.  * $Date: 1998/03/03 15:11:45 $
  18.  *
  19.  * Graphical routines for drawing boxes.
  20.  *
  21.  * $Log: box.c,v $
  22.  * Revision 1.1.1.1  1998/03/03 15:11:45  nobody
  23.  * reimport after crash from backup
  24.  *
  25.  * Revision 1.1.1.1  1998/02/13  20:21:20  hfrieden
  26.  * Initial Import
  27.  *
  28.  * Revision 1.1  1995/03/09  08:49:05  allender
  29.  * Initial revision
  30.  *
  31.  *
  32.  * --  PC Descent RCS information -----
  33.  * Revision 1.3  1994/11/18  22:50:19  john
  34.  * Changed shorts to ints in parameters.
  35.  * 
  36.  * Revision 1.2  1993/10/15  16:23:31  john
  37.  * y
  38.  * 
  39.  * Revision 1.1  1993/09/08  11:43:11  john
  40.  * Initial revision
  41.  * 
  42.  *
  43.  */
  44.  
  45. #include "mem.h"
  46. #include "gr.h"
  47. #include "grdef.h"
  48.  
  49. void gr_ubox0(int left,int top,int right,int bot)
  50. {
  51.     int i, d;
  52.  
  53.     unsigned char * ptr1;
  54.     unsigned char * ptr2;
  55.  
  56.     ptr1 = DATA + ROWSIZE *top+left;
  57.  
  58.     ptr2 = ptr1;
  59.     d = right - left;
  60.  
  61.     for (i=top; i<=bot; i++ )
  62.     {
  63.         ptr2[0] = COLOR;
  64.         ptr2[d] = COLOR;
  65.         ptr2 += ROWSIZE;
  66.     }
  67.  
  68.     ptr2 = ptr1;
  69.     d = (bot - top)*ROWSIZE;
  70.  
  71.     for (i=1; i<(right-left); i++ )
  72.     {
  73.         ptr2[i+0] = COLOR;
  74.         ptr2[i+d] = COLOR;
  75.     }
  76. }
  77.  
  78. void gr_box0(int left,int top,int right,int bot)
  79. {
  80.     if (top > MAXY ) return;
  81.     if (bot < MINY ) return;
  82.     if (left > MAXX ) return;
  83.     if (right < MINX ) return;
  84.     
  85.     if (top < MINY) top = MINY;
  86.     if (bot > MAXY ) bot = MAXY;
  87.     if (left < MINX) left = MINX;
  88.     if (right > MAXX ) right = MAXX;
  89.  
  90.     gr_ubox0(left,top,right,bot);
  91.  
  92. }
  93.  
  94.  
  95. void gr_ubox12(int left,int top,int right,int bot)
  96. {
  97.     int i;
  98.  
  99.     for (i=top; i<=bot; i++ )
  100.     {
  101.         gr_upixel( left, i );
  102.         gr_upixel( right, i );
  103.     }
  104.  
  105.     gr_uscanline( left, right, top );
  106.  
  107.     gr_uscanline( left, right, bot );
  108. }
  109.  
  110. void gr_box12(int left,int top,int right,int bot)
  111. {
  112.     if (top > MAXY ) return;
  113.     if (bot < MINY ) return;
  114.     if (left > MAXX ) return;
  115.     if (right < MINX ) return;
  116.     
  117.     if (top < MINY) top = MINY;
  118.     if (bot > MAXY ) bot = MAXY;
  119.     if (left < MINX) left = MINX;
  120.     if (right > MAXX ) right = MAXX;
  121.         
  122.     gr_ubox12(left, top, right, bot );
  123.     
  124. }
  125.  
  126. void gr_ubox(int left,int top,int right,int bot)
  127. {
  128.     gr_ubox0( left, top, right, bot );
  129. }
  130.  
  131. void gr_box(int left,int top,int right,int bot)
  132. {
  133.     gr_box0( left, top, right, bot );
  134. }
  135.